Observer filtered activity recommendations

ABSTRACT

Technologies related to observer filtered activity recommendations are generally described. In some examples, a computing device may collect activity and observer information for a device user, may identify limited observer activities, and may generate observer filtered activity recommendations for the device user, the observer filtered activity recommendations corresponding to the identified limited observer activities. Observer filtered activity recommendations may optionally be restricted in the presence of current observers outside a limited observer group. In some examples, the computing device may provide automated access to observer information and/or to observer filtered activity information to enable observer filtered activity recommendations by applications accessing the observer information and/or the observer filtered activity information.

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this application and are notadmitted to be prior art by inclusion in this section.

Interactions with computing devices, applications, and services arebecoming increasingly personalized. For example, TV shows, movies,videos, advertisements, music, news, activities, events, humor, searchqueries and search results can be usefully recommended to computer usersbased on user history and/or other user information.

Moreover, many of today's computing devices are mobile and are equippedwith a variety of sensors. For example, the various IPHONE® devices madeby Apple Inc., the various devices equipped with ANDROID® software madeby Google Inc., and the various devices equipped with WINDOWS PHONE®software made by Microsoft Corp. are often equipped with technologiessuch as Global Positioning System (GPS) technologies and accelerometers.Such technologies allow for collecting additional user information,e.g., location history and accelerometer data, which can be leveraged tomake additional types of recommendations. Such technologies also allowfor increased utility and level of personalization of recommendations ingeneral.

Personalized recommendations may be generally considered desirable bycomputer users as well as commercial interests. Computer users may wantpersonalized recommendations because they allow for fasteridentification of relevant, useful information. Commercial interestsappreciate that personalized recommendations can drive increasedeconomic activity and goodwill. Notwithstanding, there may be ongoingconcerns about user privacy, and such concerns can affect desirabilityof opting into disclosures needed for more personalized recommendations.

SUMMARY

The present disclosure generally describes technologies includingdevices, methods, and computer readable media relating to observerfiltered activity recommendations. Some example methods may comprisemaking observer filtered activity recommendations by a computing device,e.g., by collecting activity information for activities engaged by adevice user; collecting observer information comprising observersproximal to the device user when the activities are engaged; storingcollected activity information and collected observer information;identifying, based on the collected observer information, limitedobserver activities among the collected activity information; andgenerating, for the device user, observer filtered activityrecommendations corresponding to the limited observer activities. Someembodiments may time observer filtered activity recommendations to occurwhen the device user is in private or in presence of a limited set ofobservers, thereby protecting device user privacy with respect tocurrent observers.

Some embodiments may store sentiment information for activities, e.g.,positive or negative sentiment scores. When a limited observer activityis a positive activity associated with a positive sentiment score,observer filtered activity recommendations may comprise recommendationsto engage in the positive activity, such as advertisements for productsor services to engage in the positive activity. Conversely, when alimited observer activity is a negative activity associated with anegative sentiment score, observer filtered activity recommendations maycomprise recommendations to assist in preventing the negative activity,such as advertisements for products or services to assist in preventingthe negative activity. Embodiments may thereby assist in detectingbehaviors that a device user may want to change, and may assist inpreventing or changing such behaviors.

Some example methods may comprise providing, by a computing device,automated access to observer filtered activity information. Such methodsmay enable, inter alia, providing observer filtered activity informationto applications executable by the computing device, allowing theapplications to make observer filtered activity recommendations whilesimultaneously protecting device user privacy.

To enable automated access to observer filtered activity information,the computing device may store activity information for activitiesengaged by a device user, and observer information comprising observersproximal to the device user when the activities are engaged. Limitedobserver activities may be identified among the activity information,based on the observer information. The computing device may receiverequests for activity information and determine, in response to activityinformation requests, whether the requested activity informationcomprises a limited observer activity.

When requested activity information comprises a limited observeractivity, the computing device may restrict activity informationprovided in response to the request. Example approaches for restrictingactivity information include comparing current observer information toobserver information corresponding to the limited observer activity,and/or displaying a permission User Interface (UI) comprising a requestfor device user permission to provide the requested activityinformation. The computing device may automatically provide therequested activity information in response to the request subject torestriction when the requested activity information comprises a limitedobserver activity.

Some example methods may comprise collecting and providing observerinformation by a computing device. Such methods may enable, inter alia,automatically providing observer information to applications executableby the computing device. The applications may be allowed to triggerobserver collection events and/or request observer information, e.g., tomake observer filtered activity recommendations.

Methods to collect and provide observer information may comprisecollecting, by the computing device, at observer collection events,observer information comprising identifications of observers proximal toa device user; storing collected observer information from the observercollection events; receiving observer information requests; andautomatically providing, in response to observer information requests,one or more of: requested observer information corresponding to observercollection events identified in the observer information requests, orindications of whether current observer information matches storedobserver information corresponding to observer collection eventsidentified in the observer information requests.

Computing devices and computer readable media having instructionsimplementing the various technologies described herein are alsodisclosed. Example computer readable media may comprise non-transitorycomputer readable storage media having computer executable instructionsexecutable by a processor, the instructions that, when executed by theprocessor, cause the processor to carry out any combination of thevarious methods provided herein. Example computing devices may include aserver comprising a processor, a memory, and an observer filteredactivity recommendation system, an interface for automated access toobserver filtered activity information, and/or an interface forautomated access to collected observer information configured to carryout the methods described herein.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other features of the present disclosure will becomemore fully apparent from the following description and appended claims,taken in conjunction with the accompanying drawings. Understanding thatthese drawings depict only several embodiments in accordance with thedisclosure and are, therefore, not to be considered limiting of itsscope, the disclosure will be described with additional specificity anddetail through use of the accompanying drawings, in which:

FIG. 1 is a block diagram of an example computing device equipped withan observer filtered activity recommendation system;

FIG. 2 is a block diagram of another example computing device equippedwith an observer filtered activity recommendation system;

FIG. 3 is a flow diagram of example methods which may be performed by anobserver filtered activity recommendation system

FIG. 4 is a flow diagram illustrating an example method configured togenerate and provide observer filtered activity recommendations;

FIG. 5 is a flow diagram of an example method to provide automatedaccess to observer filtered activity information;

FIG. 6A is a flow diagram of an example method to provide observerinformation;

FIG. 6B is a flow diagram of an example method to provide observerinformation; and

FIG. 7 illustrates an example privacy settings UI, all arranged inaccordance with at least some embodiments of the present disclosure.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the spirit or scope of the subject matterpresented here. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe Figures, may be arranged, substituted, combined, and designed in awide variety of different configurations, all of which are explicitlycontemplated and made part of this disclosure.

The present disclosure is generally drawn, inter alia, to technologiesincluding methods, devices, systems and/or computer readable mediadeployed therein relating to observer filtered activity recommendations.In some examples, a computing device may collect activity and observerinformation for a device user, identify limited observer activities, andgenerate observer filtered activity recommendations for the device usercorresponding to the limited observer activities. Observer filteredactivity recommendations may optionally be restricted in the presence ofcurrent observers outside a limited observer group. In some examples,the computing device may provide automated access to observerinformation and/or to observer filtered activity information to enableobserver filtered activity recommendations by applications accessing theobserver information and/or the observer filtered activity information.

In one example scenario, an adult may secretly enjoy the music of a teenpop idol. The adult may frequently use her mobile device to listen tothe teen music. Her mobile device is an example computing device, she isan example device user, and the act of listening to teen music is anexample of an activity for which activity information may be collectedby her mobile device.

Her mobile device may furthermore collect observer information when shelistens to teen music. Observer information may comprise informationindicative of persons proximal to the device user. In some embodiments,observer information may comprise a total count of persons proximal tothe device user, or a best approximation of such a total count ofpersons. Observer information may comprise, e.g., a total count such as0, 1, 2, 3 . . . total observers. In some embodiments, observerinformation may comprise identifications indicative of persons proximalto the device user—e.g., where an identifier may be collected for eachseparate observer. Identifiers may comprise, for example, any assignedidentifiers. In some embodiments, identifiers may comprise names ofpersons proximal to the device user and/or identifiers for observerdevices proximal to the device user (e.g., devices typically carried bypersons such as mobile phones). Observer information may or may notalways be complete, however, incomplete observer information maynonetheless be useful in connection with embodiments of this disclosure.

A variety of observer information collection techniques are describedherein, e.g., in some embodiments, the device user's mobile device mayuse a wireless signal sensor to detect presence of observer devices.Collected activity and observer information may be stored, either at themobile device or at another location such as at a server. For simplicityof explanation, this example will continue to use the mobile device asthe example computing device, with the understanding that different oradditional devices may be employed in some embodiments.

The mobile device may use collected activity and observer information toidentify limited observer activities. Limited observer activities maycomprise activities for which observers are limited, as determined fromcollected activity and observer information. For example, observerinformation for multiple instances of a given activity may reveal thatobservers are limited for the given activity. In some examples,observers may be limited in number, and such limited observer activitiesare referred to herein as solitary type limited observer activities. Insome examples, observers may be limited to any observer property, suchas observer gender or other observer group affiliation, and such limitedobserver activities are referred to herein as group type limitedobserver activities.

For example, the mobile device may determine from analysis of multipleinstances of listening to teen music, that observers are almost neverpresent for that activity (in which case listening to teen music is asolitary type limited observer activity), or that certain observers arealmost never present for that activity (in which case listening to teenmusic is a group type limited observer activity). Those certainobservers may correspond to certain individuals familiar to the deviceuser, or for example to her friends, her family, or her work colleaguesas a group. Conversely, in some embodiments, the mobile device may usecollected activity and observer information to identify unlimitedobserver activities, such as activities performed multiple times in thepresence of a variety of different observers, or for example anyactivities other than identified limited observer activities.

In some embodiments, identifying limited observer activities maycomprise identifying solitary type limited observer activities, such aswhere a device user typically engages the activity alone or else in thepresence of fewer than a predetermined number of observers. In someembodiments, identifying limited observer activities may compriseidentifying group type limited observer activities, such as where adevice user typically engages the activity in the presence of a limitedset of observers, which may be limited to specific individual observers,or to a group affiliation such as family observers or work observers.Identification of limited observer activities as a solitary or grouptype limited observer activities may be used in generating observerfiltered activity recommendations, e.g., in determining observerfiltered activity recommendation content and/or timing.

In some embodiments, identification of limited observer activities, aswell as determinations regarding properties of limited observeractivities, may be user assisted. For example, the mobile device mayprovide a privacy settings UI comprising controls adapted to confirm ordeny that certain activities are limited observer activities. In someembodiments, the privacy settings UI may comprise controls adapted fordevice user indications of allowed observers for identified limitedobserver activities.

The mobile device may generate observer filtered activityrecommendations for identified limited observer activities. Observerfiltered activity recommendations may comprise, e.g., activitysuggestions and/or advertisements for products or services associatedwith limited observer activities. For example, in the case of listeningto teen music, observer filtered activity recommendations may compriserecommendations to listen to and/or advertisements to buy a recentrelease of a new teen pop idol recommendations or advertisements forupcoming teen music concerts or apparel, or for example recommendationsor advertisements for activities correlated with teen music interest.Conversely, in some embodiments, the mobile device may generate observerfiltered activity recommendations for identified unlimited observeractivities. Activity recommendations may be considered as “observerfiltered” if observer information is used in any way in connection withthe decision to make the activity recommendation, or in connection withthe content or timing of the activity recommendation.

Activity information for use in connection with embodiments of thisdisclosure may relate to any activities, and may be collected by anycollection techniques. In some embodiments, activity information maycomprise device user product selection information, for example,selections of tangible or intangible products or services such as music,videos, movies, books, magazines, subscriptions, news, humor,electronics, medicines, medical services, legal services, financialservices, financial products such as stocks and bonds, airfare, hotelrooms, meals, sporting goods, or any other products or services, orsubcategories thereof such as, in the case of music, rock, heavy metal,classical, teen music, children's music, etc. Activity information mayalso comprise search queries and website visits, as well assubcategories thereof.

In some embodiments, activity information may comprise device usercontext activity determinations based on data collected at a deviceuser's computing device, such as the mobile device in the presentexample scenario. Context activity determinations may comprise, e.g.,determinations regarding physical world activities such as driving,walking, bicycling, flying, eating at a restaurant, drinking at a bar,smoking, sitting, shopping, gambling, doctor visits, attorney visits,visiting a friend, taking medications, etc. Services such as GOOGLE NOW®and SIRI® are currently able to make a variety of context activitydeterminations and they are expected to become ever more powerful atmaking such activity determinations in the future.

By collecting observer information for activities such as productselections, internet searches, and physical world activities, and byidentifying limited observer activities from the observer information,embodiments may support observer filtered activity recommendations whichmay be targeted to potential device user sentiments regarding theirvarious activities. For example, observer filtered activityrecommendations comprising advertisements for teen music may have astrong emotional impact on a device user for whom teen music is alimited observer activity. In contrast, advertisements for music ofanother genre, which genre is not classified as a limited observeractivity, may have less emotional impact on the device user. Embodimentsmay optionally also provide observer filtered activity recommendationsat opportune times, e.g., when a device user is in private or otherwiseoutside the presence of any current observers beyond the set of limitedobservers associated with a limited observer activity.

Some embodiments may use sentiment information for limited observeractivities to improve targeting of observer filtered activityrecommendations to potential device user sentiments regarding theirvarious activities. Sentiment information may be drawn from a variety ofsources and may take a variety of forms. In some example embodiments,sentiment information may indicate positive or negative sentiment scoresfor limited observer activities. Positive or negative sentiment scoresmay be drawn from sentiment data designed to reflect general culturalsentiments about limited observer activities, or sentiment scores may bedrawn from sentiment data designed to reflect sentiments associated withthe device user's demographic, such as device user age, gender,ethnicity, geographic region, etc.

For example, unhealthy activities such as smoking, alcohol or drug use,or eating unhealthy foods may be associated with negative sentimentscores, while healthy activities such as listening to music and exercisemay be associated with positive sentiment scores. Other embodiments mayinclude sentiment information from other sources, e.g., embodiments maypresent device users with surveys designed to request device usersentiment scores for limited observer activities.

In some embodiments, when a limited observer activity is identified as apositive activity with a positive sentiment score, observer filteredactivity recommendations may comprise recommendations to engage in thepositive activity, such as in the example of recommending additionalteen music for the device user. Conversely, when a limited observeractivity is identified as a negative activity with a negative sentimentscore, observer filtered activity recommendations may compriserecommendations to assist in preventing the negative activity. In thisway, observer filtered activity recommendations may be based on bothobserver information as well as sentiment information to produce highlyeffective observer filtered activity recommendations.

In some embodiments, a familiarity filter may be applied to collectedobserver information, to differentiate between familiar and unfamiliarobservers. By applying a familiarity filter, embodiments may moreeffectively identify limited observer activities, e.g., by eliminatingor otherwise reducing the importance of unfamiliar observers incollected observer information.

In another example scenario, a device user may use his mobile device forpersonal as well as work-related purposes. His mobile device may beequipped with a variety of applications, such as a personal emailapplication, a work email application, an e-reader application used toread both books for pleasure and a variety of work-related documents, amaps application, a personal banking application, etc. The device usermay frequently use the e-reader to read politically themed books forpleasure, and he may prefer to not reveal his political views at work.Meanwhile, the e-reader may be equipped to make reading recommendationsbased on the device user's historical reading activity.

His mobile device may advantageously include an interface, such as anApplication Programming Interface (API), for automated access toobserver filtered activity information, referred to herein as anactivity API. The activity API may enable applications, such as thee-reader, to make observer filtered activity recommendations.

For example, the e-reader may request activity information, such ashistorical reading activity, from the activity API. The activity API mayreceive the activity information request and may determine whether therequested activity information comprises a limited observer activity,such as politically themed books, which book genre may not typically beaccessed while in proximity of work observers. When the requestedactivity information comprises a limited observer activity, the activityAPI may restrict activity information provided in response to theactivity information request. For example, the activity API may omithistorical reading activity related to politically themed books fromactivity information provided in response to the activity informationrequest, when the device user is at work or in presence of workobservers. When the requested activity information does not comprise alimited observer activity, the activity API may automatically providethe requested activity information in response to the activityinformation request.

A variety of different approaches may be used to restrict activityinformation provided in response to activity information requests. Insome embodiments, restricting activity information may comprisedetermining current observer information, and comparing the currentobserver information to observer information corresponding to anylimited observer activities identified in the requested activityinformation. In some embodiments, restricting activity information maycomprise displaying a permission UI comprising a request for device userpermission to provide the requested activity information in response tothe activity information request. In some embodiments, restrictingactivity information may comprise removing activity information relatingto limited observer activities under all circumstances. It will beappreciated with the benefit of this disclosure that a variety of otherapproaches may be employed for restricting activity information providedin response to activity information requests.

In some embodiments, the device user's mobile device may store activityand observer information, e.g., at the mobile device, for use inidentifying limited observer activities and responding to activityinformation requests. For example, the mobile device may store activityand observer information in response to application-generated observercollection requests. In the e-reader application scenario, the e-readermay be adapted to make observer collection requests each time thee-reader is engaged to access reading material. The e-reader mayoptionally also optionally supply activity information, such as booktitle, genre, author, etc. to the activity API. The activity API maystore the activity information, and may collect and store observerinformation, in response to received observer collection requests.

In some embodiments, the activity API may support application-specificinformation storage, wherein, for example, activity and observerinformation is stored separately for each application that accesses theactivity API. Embodiments comprising an activity API may optionallyprotect device user privacy by not exposing observer information toapplications, while nonetheless allowing applications to access observerfiltered activity information and to make observer filtered activityrecommendations.

In another example scenario, a device user may use his mobile device forpersonal as well as work-related purposes, as described above. Howeverinstead of, or in addition to, the activity API described herein, themobile device may include an interface for automated access to collectedobserver information, referred to herein as an observer API. Theobserver API may expose observer information more directly toapplications than the activity API, allowing applications to use theobserver information to, e.g., identify limited observer activities andmake observer-filtered activity recommendations.

In embodiments comprising an observer API, the mobile device may forexample collect and store observer information in response to observercollection events. Example observer collection events may include, interalia, application-generated observer collection requests, periodicobserver collection events, and/or activity-based observer collectionevents. The observer API may be adapted to automatically provideobserver information in response to observer information requests.

In some embodiments, observer information requests may comprise requestsfor observers present at one or more specific observer collectionevents, or at observer collection events of a specified type. Inresponse to such observer information requests, the observer API may beadapted to provide the requested observer information, such asidentifiers for observers detected at each observer collection eventspecified in an observer information request.

Applications that access observer information from the observer API mayuse the provided observer information to perform their own analyses ofobserver and activity correlations, for example to identify limitedobserver activities and/or make observer filtered activityrecommendations as described herein. Applications may also find othernew and useful ways to incorporate observer information suppliedaccording to the teachings provided herein.

In some embodiments, observer information requests may comprise requestsfor current observer approval, e.g., requests to indicate whethercurrent observer information matches stored observer informationcorresponding to one or more specific observer collection events, or toobserver collection events of a specified type. In response to suchcurrent observer approval type observer information requests, theobserver API may be adapted to provide indications of whether currentobserver information matches stored observer information correspondingto observer collection events identified in observer informationrequests.

FIG. 1 is a block diagram of an example computing device equipped withan observer filtered activity recommendation system, arranged inaccordance with at least some embodiments of the present disclosure.FIG. 1 illustrates a computing device 100 equipped with an ObserverFiltered Activity Recommendation System (OFARS) 110, an application 141and an application 142. FIG. 1 also illustrates a device user 150, anobserver device 161 and an observer device 162.

In general, OFARS 110 may be configured to store activity and observerinformation 115. Activity and observer information 115 may compriseactivity information, including activities engaged by device user 150,and observer information, including observers present when activitiesare engaged. OFARS 110 may be configured to identify limited observeractivities 122 among activity and observer information 115. In someembodiments, OFARS 110 may be configured to use limited observeractivities 122 to generate observer filtered activity recommendations.In some embodiments, OFARS 110 may be configured to provide activityinformation to applications 141 and 142 while restricting activityinformation relating to limited observer activities 122, allowingapplications 141 and 142 to generate observer filtered activityrecommendations. In some embodiments, OFARS 110 may be configured toprovide observer information to applications 141 and 142, allowingapplications 141 and 142 to, e.g., identify limited observer activitiesand/or generate observer filtered activity recommendations.

In the example embodiment illustrated in FIG. 1, OFARS 110 comprises anactivity information collector 111, a sentiment scorer 112, an observerinformation collector 113, a familiarity filter 114, a storage 101, alimited observer activity identifier 120, a privacy settings UI 121, anactivity recommendation generator 131, an activity API 132, and anobserver API 133. Storage 101 includes activity and observer information115 and limited observer activities 122.

Activity information collector 111 may be configured to collect activityinformation for activities engaged by device user 150. Sentiment scorer112 may be configured to apply sentiment scores to collected activityinformation. Observer information collector 113 may be configured tocollect observer information, e.g., each time activity information iscollected by activity information collector 111, and substantiallysimultaneously with activity information collection by activityinformation collector 111. Familiarity filter 114 may be configured tofilter observer information collected by observer information collector113, e.g., each time observer information is collected by observerinformation collector 113. OFARS 110 may be configured to store activityand observer information 115 resulting from collection, scoring, andfiltering operations of activity information collector 111, sentimentscorer 112, observer information collector 113, and familiarity filter114, in storage 101. In some examples observer information collector 113may identify observers by using radio communications, e.g. by usingWi-Fi to identify the MAC addresses of observer device 161 and/orobserver device 162. Other examples for observer device identificationinclude but are not limited to collecting Bluetooth identifiers or otherdevice identifiers.

Limited observer activity identifier 120 may be configured to analyzeactivity and observer information 115 to identify limited observeractivities 122. A privacy settings UI 121 may be configured to acquiredevice user 150 input in connection with identifying limited observeractivities 122, and/or to establish properties, such as observerinformation, corresponding to limited observer activities 122. Limitedobserver activity identifier 120 may be configured to store limitedobserver activities 122 and properties thereof in storage 101.

In some embodiments, limited observer activity identifier 120 may beconfigured to identify limited observer activities 122 by rankingactivities by observer counts, wherein the observer counts may befamiliarity filtered as described herein. Limited observer activities122 may comprise any activities having a number of observers that isbelow a threshold number of observers, as may be established over aplurality of instances of the activity in activity and observerinformation 115. The threshold number of observers may be, e.g., 1, 2,3, 4 . . . observers. Embodiments may also rank limited observeractivities 122 by number of observers, where limited observer activities122 with fewer observers may be ranked above those with more observers.

In some embodiments, activity recommendation generator 131 may beconfigured to generate observer filtered activity recommendations fordevice user 150. In some embodiments, observer filtered activityrecommendations may comprise, e.g., recommendations to engage in limitedobserver activities 122 and/or recommendations to assist in preventinglimited observer activities 122. Conversely, observer filtered activityrecommendations may comprise, e.g., recommendations to engage in“unlimited observer activities”, e.g., activities in activity andobserver information 115, other than limited observer activities 122.

In some embodiments, activity API 132 may be configured to provideautomated access to observer filtered activity information from OFARS110. Application 141 may be configured to request activity informationfrom activity API 132. OFARS 110 may be configured to determine whetherthe requested activity information comprises any limited observeractivities 122. When OFARS 110 determines that the requested activityinformation does not comprise limited observer activities 122, activityAPI 132 may be configured to automatically provide the requestedactivity information in response to the request.

When OFARS 110 determines that limited observer activity information 122is requested by application 141, OFARS 110 may be configured to restrictactivity information provided in response to the request. In someembodiments, OFARS 110 may be configured to limit activity informationto information other than limited observer activity information 122. Insome embodiments, OFARS 110 may be configured to check whetherrestriction requirements are met, such as by providing a permission UIfor device user 150 approval, or by comparing current observerinformation to observer information corresponding to requested limitedobserver activities. OFARS 110 may be configured to automaticallyprovide, via activity API 132, limited activity information and/oractivity information meeting restriction requirements, to application141 in response to requests.

Application 141 may be configured to make observer filtered activityrecommendations to device user 150, wherein application 141 activityrecommendations may be, e.g., based on activity information other thanlimited observer activities 122, or based limited observer activities122 when restriction requirements such as device user 150 permission, orcurrent observer requirements, are met.

In some embodiments, observer API 133 may be configured to provideautomated access to observer information from OFARS 110. OFARS 110 mayoptionally be configured as an observer information system adapted tosupport observer API 133 without necessarily including one or more ofthe elements illustrated in FIG. 1. For example, in some embodimentsOFARS 110 may provide an observer information system without limitedobserver activity identifier 120 and/or activity information collector.OFARS 110 may be configured to store observer information in response toany observer collection events, including activity-based observercollection events, requests from application 142 to observer API 133,and/or periodic collection events.

Application 142 may be configured to request observer information fromobserver API 133. In some embodiments, observer information requests maycomprise requests for observer identifiers and/or observer counts fromobserver collection events. OFARS 110 may be configured to automaticallyprovide, via observer API 133, requested observer informationcorresponding to observer collection events identified in observerinformation requests received from application 142.

In some embodiments, observer information requests may comprise currentobserver approval requests. OFARS 110 may be configured to provide, toapplication 142 via observer API 133, indications of whether currentobserver information matches stored observer information correspondingto observer collection events identified in observer informationrequests.

Application 142 may be configured to use observer information returnedby observer API 133, e.g., to identify limited observer activitiesand/or to make observer filtered activity recommendations to device user150. In some embodiments, application 142 may be configured to useindications responsive to current observer approval requests to timeactivity recommendations to occur in presence of appropriate currentobservers and/or to occur when device user 150 is in private.

In some embodiments, computing device 100 may comprise a mobile devicesuch as an IPHONE®, ANDRIOD®, or WINDOWS MOBILE® type device. Mobiledevices are increasingly equipped with personal assistants and othercontext systems equipped to identify activities of device users. In someembodiments, OFARS 110 may comprise a subcomponent of a context systemsuch as GOOGLE NOW® and SIRI®, or OFARS 110 may be configured tointeroperate with a context system. For example, activity informationcollector 111 may be configured to receive activity information from acontext system, or a context system may serve as activity informationcollector 111 and a context system storage may serve as storage 101.

Elements of OFARS 110 may be implemented at a single computing device100, as illustrated, or elements of OFARS 110 may be implemented atmultiple different computing devices, and may be configured tocommunicate across networks as appropriate. For example, in someembodiments, activity information collector 111 and observer informationcollector 113 may be implemented at computing device 100, while theremaining elements of OFARS 110 may be implemented at a remote servercomputing device. Other embodiments may place any aspects of OFARS 110at computing device 100, and any aspects of OFARS 110 at one or moreremote server computing devices, as appropriate. Furthermore, OFARS 110and/or elements of OFARS 110 such as activity information collector 111,sentiment scorer 112, observer information collector 113, familiarityfilter 114, storage 101, limited observer activity identifier 120,activity recommendation generator 131, activity API 132, and observerAPI 133 may be configured to communicate with one or more remote servercomputing devices in the course of their operations at computing device100.

FIG. 2 is a block diagram of an example computing device 200 equippedwith an observer filtered activity recommendation system, arranged inaccordance with at least some embodiments of the present disclosure. Ina very basic configuration 201, computing device 200 may include one ormore processors 210 and system memory 220. A memory bus 230 may be usedfor communicating between the processor 210 and the system memory 220.

Depending on the desired configuration, processor 210 may be of any typeincluding but not limited to a microprocessor (μP), a microcontroller(μC), a digital signal processor (DSP), or any combination thereof.Processor 210 may include one or more levels of caching, such as a levelone cache 211 and a level two cache 212, a processor core 213, andregisters 214. The processor core 213 may include an arithmetic logicunit (ALU), a floating point unit (FPU), a digital signal processingcore (DSP Core), or any combination thereof. A memory controller 215 mayalso be used with the processor 210, or in some implementations thememory controller 215 may be an internal part of the processor 210.

Depending on the desired configuration, the system memory 220 may be ofany type including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.), or anycombination thereof. System memory 220 typically includes an operatingsystem 221, one or more applications 222, and program data 225. In someembodiments, operating system 221 may comprise a virtual machine that ismanaged by a Virtual Machine Manager (VMM). Operating system 221 maycomprise, for example, OFARS 110 modules. Applications 222 may include,for example, application 141 module(s) and application 142 module(s).Program data 225 may include, for example, activity an observerinformation 115 and limited observer activities 122 that may be used byOFARS 110.

Computing device 200 may have additional features or functionality, andadditional interfaces to facilitate communications between the basicconfiguration 201 and any required devices and interfaces. For example,a bus/interface controller 240 may be used to facilitate communicationsbetween the basic configuration 201 and one or more data storage devices250 via a storage interface bus 241. The data storage devices 250 may beremovable storage devices 251, non-removable storage devices 252, or acombination thereof. Examples of removable storage and non-removablestorage devices include magnetic disk devices such as flexible diskdrives and hard-disk drives (HDD), optical disc drives such as compactdisc (CD) drives or digital versatile disc (DVD) drives, solid statedrives (SSD), and tape drives, to name a few. Example computer storagemedia may include volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage ofinformation, such as computer readable instructions, data structures,program modules, or other data.

Level 1 cache 211, level 2 cache 212, system memory 220, removablestorage 251, and non-removable storage devices 252 are all examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile discs (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium that may be used to store thedesired information and that may be accessed by computing device 200.Any such computer storage media may be part of device 200.

Computing device 200 may also include an interface bus 242 forfacilitating communication from various interface devices (e.g., outputinterfaces, peripheral interfaces, and communication interfaces) to thebasic configuration 201 via the bus/interface controller 240. Exampleoutput devices 260 include a graphics processing unit 261 and an audioprocessing unit 262, which may be configured to communicate to variousexternal devices such as a display or speakers via one or more A/V ports263. Example peripheral interfaces 270 may include a serial interfacecontroller 271 or a parallel interface controller 272, which may beconfigured to communicate through either wired or wireless connectionswith external devices such as input devices (e.g., keyboard, mouse, pen,voice input device, touch input device, etc.) or other peripheraldevices (e.g., printer, scanner, etc.) via one or more I/O ports 273.Other conventional I/O devices may be connected as well such as a mouse,keyboard, and so forth. An example communications device 280 includes anetwork controller 281, which may be arranged to facilitatecommunications with one or more other computing devices 290 over anetwork communication via one or more communication ports 282.Furthermore, communications devices 280 may be equipped to use shortrange wireless communications technologies, such as Wi-Fi, Bluetooth,Radio Frequency Identification (RFID), Near Field Communications (NFC)and the like to detect presence of other nearby devices, such asobserver devices 161 and 162, illustrated in FIG. 1. In someembodiments, computing device 200 may be configured to usecommunications devices 280 to detect presence of one or more observerdevices, e.g., observer devices 161, 162, as may be requested byobserver information collector 113. Computing device 200 may beconfigured to count the number of detected observer devices. In someembodiments, computing device 200 may be configured to identify detectedobserver devices, e.g., by a device or observer identifier.

The computer storage media may be one example of a communication media.Communication media may typically be embodied by computer readableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave or other transportmechanism, and include any information delivery media. A “modulated datasignal” may be a signal that has one or more of its characteristics setor changed in such a manner as to encode information in the signal. Byway of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), infrared (IR),and other wireless media.

Computing device 200 may be implemented as a mobile device such as asmart phone or tablet. Computing device 200 may also be implemented as apersonal or business use computer including both laptop computer andnon-laptop computer configurations.

FIG. 3 is a flow diagram of example methods which may be performed by anobserver filtered activity recommendation system, arranged in accordancewith at least some embodiments of the present disclosure. The exampleflow diagram may include one or more operations/modules as illustratedby blocks 301-307, 310, 320, and 330, which represent operations as maybe performed in a method, functional modules in computing device 100introduced in FIG. 1, and/or instructions as may be recorded on acomputer readable medium 350.

In FIG. 3, blocks 301-307, 310, 320, and 330, are illustrated asincluding blocks being performed sequentially, e.g., with block 301first and block 307 last in a sequence, followed by one or more ofblocks 310, 320, or 330. It will be appreciated however that theseblocks may be re-arranged as convenient to suit particular embodimentsand that these blocks or portions thereof may be performed concurrentlyin some embodiments. It will also be appreciated that in some examplesvarious blocks may be eliminated, divided into additional blocks, and/orcombined with other blocks.

FIG. 3 illustrates an example method by which computing device 100 maycollect and store activity and observer information, and identifylimited observer activities. Computing device 100 may use storedactivity and observer information and/or identified limited observeractivities to make observer filtered activity recommendations and/or toprovide automated access to observer filtered activity information.Computing device 100 may use stored observer information to provideautomated access to observer information.

At a “Device User Engages Activity” block 301, computing device 100 maybe used by a device user in connection with an activity, or computingdevice 100 may detect a device user activity. For example, the deviceuser may use computing device 100 to conduct an Internet search, towatch a video, to run an application, or to purchase a product. Thedevice user may undertake any number of physical activities such assitting, walking, driving, jogging, or bicycling, which may be detectedby computing device 100. Block 301 may be followed by block 302.

At a “Collect Activity Information” block 302, computing device 100 maycollect activity information for the activity engaged by the device userat block 301. Computing device 100 may collect activity information bystoring activity information, such as an activity identifier, activitydescription, and/or data produced in the course of an activity. Forexample, when the activity comprises an Internet search, block 302 maystore search terms entered by the device user as activity information.When the activity comprises watching a video, playing a video game,using a particular application, listening to music, or a productselection or purchase, block 302 may store title/name, description,and/or genre/category information as activity information. When theactivity comprises a device user context activity determination, such asa determination regarding a device user's physical activity, block 302may store the device user context activity determination as activityinformation. Block 302 may be followed by block 303.

At a “Collect Observer Information” block 303, computing device 100 maycollect observer information comprising observers proximal to the deviceuser when an activity is engaged by the device user at block 301. Block303 may collect observer information according to any availabletechnique, and this disclosure is not limited to any particular observerinformation collection technique.

In some embodiments, observer information collected at block 303 maycomprise information reported via a mobile communications network.Mobile communications networks, such as third generation (3G), fourthgeneration (4G) networks, and other networks providing mobile voiceand/or data communications may collect device location information.Block 303 may interact with one or more mobile communications networkservices to collect observer information, e.g., by requestinginformation about a number of observer devices, or identifiers ofobserver devices, within a predefined range from computing device 100.The predefined range may comprise, e.g., a sphere or circle withcomputing device 100 at its center and radius of anywhere from 2-30meters. Observer devices may comprise any and all devices proximal tothe device user, e.g., devices proximal to computing device 100 such asthose within the predefined range.

In some embodiments, observer information collected at block 303 maycomprise Wi-Fi communications information. Computing device 100 maycomprise a Wi-Fi communication device. Block 303 may use the Wi-Ficommunication device to detect Wi-Fi signals from observer deviceswithin range of Wi-Fi communications. Block 303 may store Wi-Fiidentification information for detected observer devices as observerinformation.

In some embodiments, observer information collected at block 303 maycomprise information reported via a social network. For example,information posted by the device user to a social network may includeactivity information as well as identifications of persons present withthe device user. An example social network post may include, e.g.“celebrating Joe's birthday at ice skating rink”, and may identify Joe,Anne, and Tom. The activity, “celebrating Joe's birthday at ice skatingrink” may be stored as activity information at block 302, and theidentifications of persons present, e.g., Joe, Anne, and Tom may bestored as observer information at block 303.

In some embodiments, observer information collected at block 303 maycomprise information reported via a location-based service.Location-based services generally identify locations of device users formarketing and/or providing location-specific information. Location-basedservices may therefore have information about computing devices as theyenter and leave a particular location. Block 303 may interact with alocation based service to collect observer information, e.g., byrequesting information about a number of observer devices, oridentifiers of observer devices, within range of the location-basedservice.

In some embodiments, observer information collected at block 303 maycomprise Global Positioning System (GPS) information. For example, whencomputing device 100 has appropriate permissions, block 303 may requestGPS information for any observer devices within a predefined range ofcomputing device 100, such as the range described above. Alternatively,block 303 may request GPS information for device user contacts, and maycompare returned GPS information with the current location of computingdevice 100 to determine any observer devices within a predefined rangeof computing device 100.

In some embodiments, observer information collected at block 303 maycomprise information reported by the device user. For example, anobserver identification UI may be presented to the device user, allowingthe device user to enter observer names, e.g., by typing names orselecting names from a contacts list. Block 303 may store the observerinformation reported by the device user. In some embodiments,information reported by the device user may supplement or modifyobserver information collected using one or more other techniques.

In some embodiments, observer information collected at block 303 maycomprise information reported via a sensor at a device user computingdevice. For example, an acoustic transducer or microphone may detectvoices, and voice recognition may be used to identify observers. Acamera may detect faces and face recognition may be used to identifyobservers. An NFC or Bluetooth wireless sensor/antenna may be used todetect wireless signals from observer devices and to identify observers,or at least observer devices, based on such detected wireless signals.Block 303 may be followed by block 304.

At a “Store Collected Activity and Observer Information” block 304,computing device 100 may store collected activity information andcollected observer information, e.g., in a local computing devicestorage or at a remote server storage. In some embodiments, block 304may be performed in multiple operations, e.g., an activity informationstorage operation and an observer information storage operation.Collected activity and observer information may be stored in a mannerthat correlates observer information with corresponding activityinformation. For example, observer information collected at or around atime an activity is performed may be stored in a same table row as theactivity information collected for that activity. In some embodiments,activity information and observer information may be stored separately,and may be correlated by collection time—e.g., by storing activityinformation along with a time each activity is engaged, and by storingobserver information along with a time each observer is detected.Observers corresponding to a particular activity may then be consideredas those observers detected within some predetermined time windowsurrounding the activity. A time window may comprise, e.g., 1 minute to1 hour. Block 304 may be followed by block 305.

At an “Apply Familiarity Filter” block 305, computing device 100 mayapply a familiarity filter to collected observer information. Block 305may be performed prior to block 304 or after block 304. The familiarityfilter may generally filter observer information based on likelyfamiliarity with the device user. For example, in some embodiments, thefamiliarity filter may discard unfamiliar observers from stored observerinformation while keeping familiar observers. In some embodiments, thefamiliarity filter may apply weights to rank the likely familiarity ofobservers. To determine familiarity of observers, embodiments may forexample use the device user's social and professional contacts, machinelearning based grouping, and/or frequency measurements to distinguishbetween anonymous random bystanders and people the device user knows.Block 305 may be followed by block 306.

At an “Identify Limited Observer Activities” block 306, computing device100 may identify, based on the collected observer information, at leastone limited observer activity among the collected activity information.Limited observer activities may be defined in several different ways.For example, in some embodiments, limited observer activities maycomprise activities with no observers. In some embodiments, limitedobserver activities may comprise activities with few observers, such asone or fewer, two or fewer, etc. Limited observer activities with noobservers and/or few observers may be referred to herein as “solitarytype” limited observer activities.

In some embodiments, limited observer activities may comprise activitieswhich are engaged in the presence of a limited set of observers, e.g., alimited set comprising some individual observers but not others, or alimited set comprising some observer types as may be ascertained from acommon observer attribute, but not other observer types. Limitedobserver activities which are engaged in the presence of a limited setof observers are referred to herein as “group type” limited observeractivities.

Block 306 may identify solitary type limited observer activities, grouptype limited observer activities, or both. Embodiments may identifysolitary type limited observer activities, e.g., by identifyingactivities within the stored activity and observer information whichcomprise fewer than a predetermined number of observers over a pluralityof instances of the activity. Embodiments may identify group typelimited observer activities, e.g., by identifying activities within thestored activity and observer information which comprise observers withina limited set of observers corresponding to a group type limitedobserver activity, over a plurality of instances of the group typelimited observer activity. Block 306 may be followed by block 307.

At a “Provide Privacy Settings UI” block 307, computing device 100 mayprovide a privacy settings UI adapted to receive device user privacysettings inputs. An example privacy settings UI is illustrated in FIG.7.

FIG. 7 illustrates an example privacy settings UI, arranged inaccordance with at least some embodiments of the present disclosure. Insome embodiments, privacy settings UI 700 may ask the device userwhether limited observer activities identified at block 306 arecorrectly identified as limited observer activities. Device userconfirmation may be used as part of limited activity identification. Forexample, privacy settings UI 700 includes a control 701 and a control702, adapted to confirm or deny an activity as a limited observeractivity. Device user selection of control 701 may confirm listening toteen music is a limited observer (or private) activity, while deviceuser selection of control 702 may deny listening to teen music is alimited observer (or private) activity.

In some embodiments, privacy settings UI 700 may comprise controlsadapted to receive device user indications of allowed observerscorresponding to limited observer activities. For example, privacysettings UI 700 may comprise a control 711, a control 712, and a control713, adapted to identify observers previously present when an activitywas engaged, and to ask whether such previous observers are allowed. Insome embodiments, privacy settings UI 700 may allow the device user tospecify additional observers, e.g., via a control 714. Privacy settingsUI 700 may optionally also include additional features, such as acontrol to request no activity recommendations for identified limitedobserver activities. Block 307 may be followed by any of blocks block310, 320, and/or 330.

Returning to FIG. 3, at a “Generate/Provide Observer Filtered ActivityRecommendations” block 310, computing device 100 may generate, for thedevice user, observer filtered activity recommendations corresponding toidentified limited observer activities. Observer filtered activityrecommendations may comprise, e.g., advertisements for products orservices associated with limited observer activities. Observer filteredactivity recommendations may be generated, e.g., by retrieving targetedadvertising content.

Generated observer filtered activity recommendations may be provided tothe device user, e.g., by displaying the observer filtered activityrecommendations on a computing device display. In some embodiments,block 310 may time observer filtered activity recommendations to occurwhen the device user is in private or in presence of observers within alimited set of observers corresponding a limited observer activity. Asnoted herein, limited observer activities may generally correspond toactivities associated with heightened emotional response. Activityrecommendations corresponding to limited observer activities maytherefore command more device user attention than other activityrecommendations. Block 310 is discussed further in connection with FIG.4.

At a “Provide Requested Activity Information” block 320, computingdevice 100 may provide requested activity information in response toactivity information requests, e.g., through activity API 132. Theprovided activity information may be subject to restriction when itcomprises limited observer activity information, as described further inconnection with FIG. 5.

At a “Provide Requested Observer Information 330” block 330, computingdevice 100 may provide requested observer information in response toobserver information requests, e.g., through observer API 133. Theprovided observer information may include observer information fromobserver collection events, or the provided observer information mayinclude an indication of whether current observer information matchesstored observer information, as described further in connection withFIGS. 6A and 6B.

FIG. 4 is a flow diagram illustrating an example method configured togenerate and provide observer filtered activity recommendations,arranged in accordance with at least some embodiments of the presentdisclosure. The example flow diagram may include one or moreoperations/modules of “Generate/Provide Observer Filtered ActivityRecommendations” block 310, introduced in FIG. 3. The operations/modulesin FIG. 4 are illustrated by blocks 411-415, which represent operationsas may be performed in a method, functional modules in computing device100 illustrated in FIG. 1, and/or instructions as may be recorded oncomputer readable medium 350 illustrated in FIG. 3.

In FIG. 4, blocks 411-415 are illustrated as including blocks beingperformed sequentially, e.g., with block 411 first and block 415 last.It will be appreciated however that these blocks may be re-arranged asconvenient to suit particular embodiments and that these blocks orportions thereof may be performed concurrently in some embodiments. Itwill also be appreciated that in some examples various blocks may beeliminated, divided into additional blocks, and/or combined with otherblocks.

FIG. 4 illustrates an example method by which computing device 100 maygenerate and provide observer filtered activity recommendations at block310. Block 310 may generate, for the device user, observer filteredactivity recommendations corresponding to identified limited observeractivities. Block 310 may provide generated observer filtered activityrecommendations to the device user, e.g., by displaying the observerfiltered activity recommendations on a computing device display. In someembodiments, block 310 may time observer filtered activityrecommendations to occur when the device user is in private or inpresence of observers within a limited set of observers corresponding alimited observer activity.

At a “Sentiment Scoring” block 411, computing device 100 may retrieveand store sentiment information for activities. In some embodiments,block 411 may retrieve and store sentiment information for allactivities identified in stored activity and observer information 115.For example, FIG. 1 illustrates activity information collector providingactivity information to sentiment scorer 112, and sentiment scorer 112providing, e.g., sentiment-scored activity information into storedactivity and observer information 115. In some embodiments, block 411may retrieve and store sentiment information for limited observeractivities 122 identified at block 306. For example, sentiment scorer112 may be configured to sentiment score limited observer activities122. Sentiment information may indicate, e.g., a positive or negativesentiment score for each identified limited observer activity.

Block 411 may retrieve sentiment data from any of a variety of sources.In some embodiments, block 411 may retrieve sentiment information from anetwork sentiment information service adapted to support embodiments ofthis disclosure. An example network sentiment information service mayreceive activity identification information from computing device 100,and may return sentiment information corresponding to the receivedactivity information. In some embodiments, block 411 may request deviceuser input including sentiment information for the device user's limitedobserver activities.

In some embodiments, block 411 may comprise “max and min dualpopulation” sentiment scoring which may keep track of bimodal resultsfor activity terms to capture the possibility that an activity may beassociated with both positive and negative sentiment. Sentiment scoringof text and concepts is available as a service from a variety ofsources. Sentiment analysis may be based on language research and mayfor example operate by calculating posterior probabilities thatexpressive language used may be associated with typical differentsentiment corpora to provide a score along axes of positive or negativeassociations. Some concepts have strong scores along both positive andnegative axes (e.g. music groups, controversial opinions) which arenormally resolved in favor of a higher weight. In max and min scoringapproaches, both max and min scores may be kept to capture thepossibility of something being either a positive or negative activity.In such situations an activity may be considered controversial orsecondary considerations may be used to judge the users feelings on thematter.

Limited observer activities with both positive and negative possiblesentiment scores can be tracked in an indeterminate state andadditionally resolved using other indicators. For example if it isunclear whether a limited observer activity is positive or negative,OFARS 110 may be configured to activity recommendations to stop thelimited observer activity, and OFARS 110 may track whether such articlesor advertising are selected by device user 150. If device user 150selects, for example, to read an article on stopping a limited observeractivity, OFARS 110 may categorize the limited observer activity as anegative activity.

Both positive and negative limited observer activities presentsignificant opportunities for OFARS 110 and/or context based systemsadapted to use OFARS 110 to add value for device users. Advertising forpositive “guilty pleasure” type limited observer activities at quietalone moments is likely to be particularly effective. Advertisingtraction for self-management services for managing negative activitiesalso has high value. In addition to advertising type activityrecommendations, OFARS 110 may be used to recommend activities such asthe use of behavior change applications and the like. Block 411 may befollowed by block 412.

At an “Identify Positive/Negative Activities” block 412, computingdevice 100 may identify limited observer activities as positiveactivities or negative activities, based on sentiment scores applied atblock 411, in order to configure block 413 to generate appropriateactivity recommendations. Activity recommendations for positiveactivities may comprise, e.g., recommendations to engage in the positiveactivities. Activity recommendations for negative activities maycomprise, e.g., recommendations to assist in preventing the negativeactivities. Block 412 may be followed by block 413.

At a “Generate Observer Filtered Activity Recommendations” block 413,computing device 100 may generate activity recommendations foridentified limited observer activities. In some embodiments, block 413may generate activity recommendations by retrieving activityrecommendations from a network activity recommendation service ornetwork advertising service. For example, block 413 may request, from anadvertising service, activity recommendations for one or more limitedobserver activities. The limited observer activities may, but need notbe identified as limited observer activities in the request. Inembodiments comprising sentiment scoring, network activityrecommendation service requests may furthermore identify limitedobserver activities as positive or negative sentiment activities, toretrieve appropriately tailored activity recommendations. In someembodiments, block 413 may be followed by block 415, without timingobserver filtered activity recommendations based on current observers.In some embodiments, block 413 may be followed by blocks 414 and 415, totime observer filtered activity recommendations in a manner that issensitive to current observers.

At a “Compare Current Observers” block 414, computing device 100 maydetermine current observers near computing device 100, and computingdevice 100 may compare the current observers to observers “allowed” forobserver filtered activity recommendations relating to a limitedobserver activity. For example, consider an activity recommendationrelating to smoking. Using the techniques described herein, smoking maybe identified as a limited observer activity for a device user whosmokes alone, or for a device user who smokes in the presence of a fewselect observers. For a device user who smokes alone, when block 414compares current observers to observers “allowed” for smoking-relatedobserver filtered activity recommendations, block 414 may determine thatthe comparison is false, or that there is no match, when any currentobservers are detected. Alternatively, for a device user who smokesalone, block 414 may determine that the comparison is true, or thatthere is a match, when no current observers are detected.

For a device user who smokes in the presence of a few select observers,when block 414 compares current observers to observers “allowed” forsmoking-related observer filtered activity recommendations, block 414may determine that the comparison is false, or that there is no match,when any current observers are detected who are not within those fewselect observers with whom the device user smokes. Alternatively, block414 may determine that the comparison is true, or that there is a match,when no current observers are detected beyond those few select observerswith whom the device user smokes. Block 414 may therefore be used toenable timing of observer filtered activity recommendations to occurwhen the device user is in private or in presence of observers within alimited set of observers corresponding to a limited observer activity.Block 414 may be followed by block 415.

At a “Provide Observer Filtered Activity Recommendations” block 415,computing device 100 may provide observer filtered activityrecommendations generated at block 413, optionally when current observerconditions allow, or when the observer comparison is true, as determinedat block 414. Observer filtered activity recommendations may beprovided, e.g., by displaying advertisements or other activityrecommendations, e.g., as a sidebar, pop-up, search result, other visualdisplay, or otherwise from within an application. Some applications,such as personal assistants, may make recommendations based in part ondevice user preferences, and observer filtered activity recommendationsmay be displayed as personal assistant activity recommendations.Observer filtered activity recommendations may also be provided asemails, text messages, audio messages, phone calls or other items. Inembodiments which time observer filtered activity recommendations basedin part on current observers, block 415 may cooperate with block 413 toprovide observer filtered activity recommendations at opportune times,based on detected current observers.

FIG. 5 is a flow diagram of an example method to provide automatedaccess to observer filtered activity information, arranged in accordancewith at least some embodiments of the present disclosure. The exampleflow diagram may include one or more operations/modules of “ProvideRequested Activity Information” block 320, introduced in FIG. 3. Theoperations/modules in FIG. 5 are illustrated by blocks 511-517, whichrepresent operations as may be performed in a method, functional modulesin computing device 100 illustrated in FIG. 1, and/or instructions asmay be recorded on computer readable medium 350 illustrated in FIG. 3.

In FIG. 5, blocks 511-517 are illustrated as including blocks beingperformed sequentially, e.g., with block 511 first and block 517 last.It will be appreciated however that these blocks may be re-arranged asconvenient to suit particular embodiments and that these blocks orportions thereof may be performed concurrently in some embodiments. Itwill also be appreciated that in some examples various blocks may beeliminated, divided into additional blocks, and/or combined with otherblocks.

FIG. 5 illustrates an example method by which computing device 100 mayprovide requested activity information in response to activityinformation requests, e.g., at block 320 as illustrated in FIG. 3,wherein block 320 may apply activity API 132 illustrated in FIG. 1. Ingeneral, block 320 may determine whether requested activity informationis subject to restriction, restrict the requested activity information,and provide the requested activity information as restricted.

At a “Receive Activity Information Request” block 511, computing device100 may receive a request for activity information. For example, in someembodiments, OFARS 110 may receive an activity information request atactivity API 132. The activity information request may comprise, e.g., arequest from an application installed at computing device 100. Block 511may be followed by block 512.

At a “Determine Whether Requested Activity Information Comprises LimitedObserver Activity Information” block 512, computing device 100 maydetermine, in response to the request received at block 511, whether therequested activity information comprises a limited observer activity.Block 512 may for example compare the requested activity informationwith limited observer activities 122. If the requested activityinformation includes any of limited observer activities 122, then therequested activity information comprises a limited observer activity. Ifthe requested activity information does not include any of limitedobserver activities 122, then the requested activity information doesnot comprise a limited observer activity. Block 512 may be followed byblock 513.

At a “Restrict Requested Activity Information” block 513, computingdevice 100 may restrict activity information provided in response to therequest received at block 511 when the requested activity informationcomprises a limited observer activity, as determined at block 512. Whendetermined at block 512 that requested activity information does notinclude any of limited observer activities 122, block 513 may be omittedor may pass directly to block 517 without performing any restrictionoperations. When determined at block 512 that requested activityinformation does include one or more limited observer activities 122,block 513 may restrict activity information according to any of theexample restriction operations illustrated at blocks 514, 515, and/or516.

At a “Limit Requested Activity Information” block 514, computing device100 may limit activity information provided in response to the requestreceived at block 511 by removing any limited observer activities 122from activity information provided in response to the request. Forexample, in the scenario of an e-reader that requests past readingactivities, and where political genre reading is identified as a limitedobserver activity, block 514 may limit activity information provided inresponse to the e-reader request by removing political genre readingactivities. Meanwhile, block 514 may allow activity informationresponsive to the request and not comprising limited observer activities122, e.g., block 514 may allow activities such as reading work-relateddocuments. In some embodiments, block 514 may configure limited observeractivities 122 to be displayed differently from other activityinformation. For example, limited observer activity information may beaccessible via an icon which the device user may select at his or herdiscretion, thereby protecting limited observer activity informationfrom unwanted display in the presence of observers, by giving the deviceuser a degree of control over the display of limited observeractivities.

At a “Compare Current Observers” block 515, computing device 100 maydetermine current observer information, and computing device 100 maycompare the current observer information to observer informationcorresponding to any limited observer activities in the requestedactivity information, e.g., as described above in connection with block414. Block 515 may allow for returning unrestricted activity informationwhen current observers match allowed observers, while restrictingreturned activity information when current observers do not matchallowed observers. Whether or not current observers match allowedobservers, embodiments that compare current observers are effective torestrict activity information, by subjecting returned activityinformation to current observer comparison. In some embodiments, block515 may for example avoid certain viewing suggestions on a TV whenobservers are present, to avoid the observers seeing private tastes in aTV interface visible to all.

At a “Device User Permission” block 516, computing device 100 may, e.g.,restrict activity information provided in response to the request fromblock 511 by displaying a permission UI comprising a request for deviceuser permission to provide the requested activity information inresponse to the request. Block 516 may restrict returned activityinformation when device user permission is not granted via thepermission UI, while block 516 may allow returning unrestricted activityinformation when device user permission is granted via the permissionUI. Whether or not device user permission is granted via the permissionUI, embodiments that present the permission UI effectively restrictactivity information by subjecting returned activity information todevice user permission.

At an “Automatically Provide Requested Activity Information” block 517,computing device 100 may automatically provide the requested activityinformation in response to the request received at block 511, subject torestrictions as applied at block 513 when the requested activityinformation comprises a limited observer activity, as determined atblock 512. Automatically providing the requested activity may beaccomplished, e.g., by operation of activity API 132 or other automatedprocess.

Applications may make use of API 132, for example, to avoid makinginappropriate activity recommendations. Such protections areparticularly interesting if one considers the Bring-Your-Own-Device(BYOD) to work trend and the fact that many employers may haveapplications on employee devices. An employer may want to implementobserver filtered activity recommendations as described herein to avoidunwanted information about an employee's limited observer activities.Some embodiments may protect employee privacy, making employees morelikely to accept employer-provided contextual applications while alsoprotecting the employer from lawsuits related to inappropriatediscovery, storage or use of private employee information.

FIG. 6A is a flow diagram of an example method to provide observerinformation, arranged in accordance with at least some embodiments ofthe present disclosure. The example flow diagram may include one or moreoperations/modules of “Provide Requested Observer Information” block330A, wherein block 330A comprises an example embodiment of block 330introduced in FIG. 3. The operations/modules in FIG. 6A are illustratedby blocks 611A-612, which represent operations as may be performed in amethod, functional modules in computing device 100 illustrated in FIG.1, and/or instructions as may be recorded on computer readable medium350 illustrated in FIG. 3.

In FIG. 6A, blocks 611A-612 are illustrated as including blocks beingperformed sequentially, e.g., with block 611A first and block 612 last.It will be appreciated however that these blocks may be re-arranged asconvenient to suit particular embodiments and that these blocks orportions thereof may be performed concurrently in some embodiments. Itwill also be appreciated that in some examples various blocks may beeliminated, divided into additional blocks, and/or combined with otherblocks.

FIG. 6A and FIG. 6B illustrate example methods by which computing device100 may provide requested observer information in response to observerinformation requests, e.g., at block 330 as illustrated in FIG. 3,wherein block 330 may apply observer API 133 as illustrated in FIG. 1.Block 330 may comprise block 330A as illustrated in FIG. 6A and/or block330B as illustrated in FIG. 6B. Block 330A may receive and respond to afirst type of observer information requests, referred to herein as“observer data” requests, and block 330B may receive and respond to asecond type of observer information requests, referred to herein as“observer approval” requests.

FIG. 6A and FIG. 6B may be applied in connection with embodimentscomprising OFARS 110, however, it is noted that some aspects of OFARS110 may not be necessary in connection with some embodiments of FIG. 6Aand FIG. 6B. For example, activity information collector 111 and limitedobserver activity identifier 120 may or may not be included inembodiments of OFARS 110 configured to support observer informationrequests according to FIG. 6A and FIG. 6B.

In embodiments of OFARS 110 configured to support observer informationrequests according to FIG. 6A and FIG. 6B, OFARS 110 may collectobserver information comprising identifications of observers proximal todevice user 150 at a plurality of observer collection events. Observercollection events may comprise, e.g., activity-based observer collectionevents, periodic observer collection events, and/or requested observercollection events. Activity-based observer collection events maycorrespond to device user activities, e.g., for which activityinformation may be collected by activity information collector 111.Periodic observer collection events may comprise, e.g., observercollection events performed at periodic time intervals, such as everyminute, every half hour, every hour, etc. Requested observer collectionevents may comprise, e.g., observer collection requests received atobserver API 133, e.g., from application 142. In some embodiments,observer collection events may be triggered by detected changes inobservers surrounding computing device 100 and/or detected changes infamiliar observers surrounding computing device 100, as may be detectedusing the observer detection and/or familiarity filter technologiesdescribed herein.

In embodiments of OFARS 110 configured to support observer informationrequests according to FIG. 6A and FIG. 6B, OFARS 110 may be configuredto store collected observer information from the plurality of observercollection events. OFARS 110 may, but need not necessarily, collect andstore activity information corresponding to each of the plurality ofobserver collection events to produce activity and observer information115. When OFARS 110 stores activity and observer information 115,limited observer activities may be identified as described herein.

At a “Receive Observer Information Request” block 611A, computing device100 may receive an “observer data” request, e.g., a request fromapplication 142 received at observer API 133. The observer data requestmay comprise a request for observers present at one or more specificobserver collection events, or at observer collection events of aspecified type. For example, the observer data request may comprise arequest for observer data from all observer collection events in theweek (or other time interval) preceding the observer data request; theobserver data request may comprise a request for observer data from aspecific observer collection event; the observer data request maycomprise a request for observer data from all observer collection eventsrequested by application 142; or the observer data request may comprisea request for observer data from all observer collection eventscorresponding to a particular activity.

At an “Automatically Provide Requested Observer Information” block 612,computing device 100 may automatically provide, in response to theobserver information request received at block 611A, requested observerinformation corresponding to the observer collection event(s) identifiedin the observer information request. Observer API 133 may be adapted toprovide the requested observer information, such as identifiers forobservers or observer devices 161, 162 detected at each observercollection event specified in an observer information request. Wherenumbers of observers are collected without observer identification,observer API 133 may be adapted to provide number(s) of observerspresent at each observer collection event specified in an observerinformation request. Application 142 may use returned observerinformation for any purpose, e.g., to perform analysis of observer andactivity correlations to identify limited observer activities and/or tomake observer filtered activity recommendations as described herein. Insome embodiments, block 612 may automatically provide, in response tothe observer data request received at block 611A, identifications ofcurrent observers along with requested observer information.

FIG. 6B is a flow diagram of an example method to provide observerinformation, arranged in accordance with at least some embodiments ofthe present disclosure. The example flow diagram may include one or moreoperations/modules of “Provide Requested Observer Information” block330B, wherein block 330B comprises an example embodiment of block 330introduced in FIG. 3. The operations/modules in FIG. 6B are illustratedby blocks 611B-615, which represent operations as may be performed in amethod, functional modules in computing device 100 illustrated in FIG.1, and/or instructions as may be recorded on computer readable medium350 illustrated in FIG. 3.

In FIG. 6B, blocks 611B-615 are illustrated as including blocks beingperformed sequentially, e.g., with block 611B first and block 615 last.It will be appreciated however that these blocks may be re-arranged asconvenient to suit particular embodiments and that these blocks orportions thereof may be performed concurrently in some embodiments. Itwill also be appreciated that in some examples various blocks may beeliminated, divided into additional blocks, and/or combined with otherblocks.

FIG. 6B illustrates an example method by which computing device 100 mayreceive and respond to “observer approval” requests. In a “ReceiveObserver Information Request” block 611B, computing device 100 mayreceive an observer approval request, e.g., a request from application142 received at observer API 133. The observer approval request maycomprise a request to indicate whether current observer informationmatches stored observer information corresponding to one or morespecific observer collection events, or corresponding to observercollection events of a specified type. For example, an observer approvalrequest received at block 611B may comprise a request to indicatewhether current observer information matches stored observer informationfor specific observer collection events, such as one or more requestedobserver collection events previously requested by application 142.Another example observer approval request may comprise a request toindicate whether current observer information matches stored observerinformation corresponding to a particular activity, such as the use ofapplication 142 by device user 150. Block 611B may optionally befollowed by block 613. Otherwise, block 611B may be followed by block614.

At a “Determine Whether Requested Observer Information Comprises LimitedObserver Activity Information” block 613, computing device 100 mayoptionally determine whether requested observer information compriseslimited observer activity information. For example, block 613 maydetermine whether observer collection events specified in the observerapproval request correspond to identified limited observer activities.If so, then block 613 may be followed by block 614. If not, then block613 may be followed by block 615. The application of block 613 maytherefore filter for limited observer activities, to provide observerapprovals for any observer approval requests not relating to limitedobserver activities, and to proceed with comparing current observers, atblock 614, for any observer approval requests relating to limitedobserver activities.

At a “Compare Current Observers” block 614, computing device 100 maycollect current observer information, and may compare the currentobserver information to stored observer information for the observercollection events specified in the observer approval request as receivedat block 611B. In embodiments comprising block 613, block 614 maycompare the current observer information to the stored observerinformation for any limited observer activities identified at block 613.Block 614 may be followed by block 615.

At an “Automatically Provide Indication of Current Observer Match” block615, computing device 100 may automatically provide, in response to theobserver approval type observer information request received at block611B, an indication of whether current observer information matchesstored observer information corresponding to the one or more observercollection events identified in the observer approval request. Forexample, observer API 133 may automatically return indications toapplication 142 in response to observer approval requests fromapplication 142.

In embodiments including block 613, block 615 may provide a “true”indication, i.e., observer approval, regardless of current observerswhen the observer approval request does not involve observer informationcorresponding to limited observer activities. Block 615 may also providea “true” indication when the observer approval request does involveobserver information corresponding to limited observer activities andwhen current observers match the observers for any identified limitedobserver activities. Block 615 may provide a “false” indication when theobserver approval request does involve observer informationcorresponding to limited observer activities and when current observersdo not match the observers for an identified limited observer activity.

In embodiments not including block 613, block 615 may compare currentobservers at block 614 for all observer approval requests received atblock 611B, regardless of whether observer approval requests relate toobserver information for limited observer activities. Block 615 mayprovide a “true” indication when current observers match the observersfor collection events identified in the observer approval request, andblock 615 may provide a “false” indication when current observers do notmatch the observers for collection events identified in the observerapproval request. In some embodiments, outlier observer information maybe removed from collected observer information prior to comparingcollected observer information with current observers.

There is little distinction left between hardware and softwareimplementations of aspects of systems; the use of hardware or softwareis generally (but not always, in that in certain contexts the choicebetween hardware and software may become significant) a design choicerepresenting cost vs. efficiency tradeoffs. There are various vehiclesby which processes and/or systems and/or other technologies describedherein may be effected (e.g., hardware, software, and/or firmware), andthat the preferred vehicle will vary with the context in which theprocesses and/or systems and/or other technologies are deployed. Forexample, if an implementer determines that speed and accuracy areparamount, the implementer may opt for a mainly hardware and/or firmwarevehicle; if flexibility is paramount, the implementer may opt for amainly software implementation; or, yet again alternatively, theimplementer may opt for some combination of hardware, software, and/orfirmware.

The foregoing detailed description has set forth various embodiments ofthe devices and/or processes via the use of block diagrams, flowcharts,and/or examples. Insofar as such block diagrams, flowcharts, and/orexamples contain one or more functions and/or operations, it will beunderstood by those within the art that each function and/or operationwithin such block diagrams, flowcharts, or examples may be implemented,individually and/or collectively, by a wide range of hardware, software,firmware, or virtually any combination thereof. In one embodiment,several portions of the subject matter described herein may beimplemented via Application Specific Integrated Circuits (ASICs), FieldProgrammable Gate Arrays (FPGAs), digital signal processors (DSPs), orother integrated formats. However, those skilled in the art willrecognize that some aspects of the embodiments disclosed herein, inwhole or in part, may be equivalently implemented in integratedcircuits, as one or more computer programs running on one or morecomputers (e.g., as one or more programs running on one or more computersystems), as one or more programs running on one or more processors(e.g., as one or more programs running on one or more microprocessors),as firmware, or as virtually any combination thereof, and that designingthe circuitry and/or writing the code for the software and or firmwarewould be well within the skill of one of skill in the art in light ofthis disclosure. In addition, those skilled in the art will appreciatethat the mechanisms of the subject matter described herein are capableof being distributed as a program product in a variety of forms, andthat an illustrative embodiment of the subject matter described hereinapplies regardless of the particular type of signal bearing medium usedto actually carry out the distribution. Examples of a signal bearingmedium include, but are not limited to, the following: a recordable typemedium such as a floppy disk, a hard disk drive, a Compact Disc (CD), aDigital Video Disc (DVD), a digital tape, a computer memory, etc.; and atransmission type medium such as a digital and/or an analogcommunication medium (e.g., a fiber optic cable, a waveguide, a wiredcommunications link, a wireless communication link, etc.).

Those skilled in the art will recognize that it is common within the artto describe devices and/or processes in the fashion set forth herein,and thereafter use engineering practices to integrate such describeddevices and/or processes into data processing systems. That is, at leasta portion of the devices and/or processes described herein may beintegrated into a data processing system via a reasonable amount ofexperimentation. Those having skill in the art will recognize that atypical data processing system generally includes one or more of asystem unit housing, a video display device, a memory such as volatileand non-volatile memory, processors such as microprocessors and digitalsignal processors, computational entities such as operating systems,drivers, graphical user interfaces, and applications programs, one ormore interaction devices, such as a touch pad or screen, and/or controlsystems including feedback loops and control motors (e.g., feedback forsensing position and/or velocity; control motors for moving and/oradjusting components and/or quantities). A typical data processingsystem may be implemented utilizing any suitable commercially availablecomponents, such as those typically found in datacomputing/communication and/or network computing/communication systems.The herein described subject matter sometimes illustrates differentcomponents contained within, or connected with, different othercomponents. It is to be understood that such depicted architectures aremerely examples and that in fact many other architectures may beimplemented which achieve the same functionality. In a conceptual sense,any arrangement of components to achieve the same functionality iseffectively “associated” such that the desired functionality isachieved. Hence, any two components herein combined to achieve aparticular functionality may be seen as “associated with” each othersuch that the desired functionality is achieved, irrespective ofarchitectures or intermediate components. Likewise, any two componentsso associated may also be viewed as being “operably connected”, or“operably coupled”, to each other to achieve the desired functionality,and any two components capable of being so associated may also be viewedas being “operably couplable”, to each other to achieve the desiredfunctionality. Specific examples of operably couplable include but arenot limited to physically connectable and/or physically interactingcomponents and/or wirelessly inter-actable and/or wirelessly interactingcomponents and/or logically interacting and/or logically inter-actablecomponents.

With respect to the use of substantially any plural and/or singularterms herein, those having skill in the art may translate from theplural to the singular and/or from the singular to the plural as isappropriate to the context and/or application. The varioussingular/plural permutations may be expressly set forth herein for sakeof clarity.

It will be understood by those within the art that, in general, termsused herein, and especially in the appended claims (e.g., bodies of theappended claims) are generally intended as “open” terms (e.g., the term“including” should be interpreted as “including but not limited to,” theterm “having” should be interpreted as “having at least,” the term“includes” should be interpreted as “includes but is not limited to,”etc.). It will be further understood by those within the art that if aspecific number of an introduced claim recitation is intended, such anintent will be explicitly recited in the claim, and in the absence ofsuch recitation no such intent is present. For example, as an aid tounderstanding, the following appended claims may contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimrecitations. However, the use of such phrases should not be construed toimply that the introduction of a claim recitation by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim recitation to inventions containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should typically be interpreted to mean “atleast one” or “one or more”); the same holds true for the use ofdefinite articles used to introduce claim recitations. In addition, evenif a specific number of an introduced claim recitation is explicitlyrecited, those skilled in the art will recognize that such recitationshould typically be interpreted to mean at least the recited number(e.g., the bare recitation of “two recitations,” without othermodifiers, typically means at least two recitations, or two or morerecitations). Furthermore, in those instances where a conventionanalogous to “at least one of A, B, and C, etc.” is used, in generalsuch a construction is intended in the sense one having skill in the artwould understand the convention (e.g., “a system having at least one ofA, B, and C” would include but not be limited to systems that have Aalone, B alone, C alone, A and B together, A and C together, B and Ctogether, and/or A, B, and C together, etc.). In those instances where aconvention analogous to “at least one of A, B, or C, etc.” is used, ingeneral such a construction is intended in the sense one having skill inthe art would understand the convention (e.g., “a system having at leastone of A, B, or C” would include but not be limited to systems that haveA alone, B alone, C alone, A and B together, A and C together, B and Ctogether, and/or A, B, and C together, etc.). It will be furtherunderstood by those within the art that virtually any disjunctive wordand/or phrase presenting two or more alternative terms, whether in thedescription, claims, or drawings, should be understood to contemplatethe possibilities of including one of the terms, either of the terms, orboth terms. For example, the phrase “A or B” will be understood toinclude the possibilities of “A” or “B” or “A and B.”

While certain example techniques have been described and shown hereinusing various methods, devices and systems, it should be understood bythose skilled in the art that various other modifications may be made,and equivalents may be substituted, without departing from claimedsubject matter. Additionally, many modifications may be made to adapt aparticular situation to the teachings of claimed subject matter withoutdeparting from the central concept described herein. Therefore, it isintended that claimed subject matter not be limited to the particularexamples disclosed, but that such claimed subject matter also mayinclude all implementations falling within the scope of the appendedclaims, and equivalents thereof.

1. A method to make observer filtered activity recommendations,comprising: collecting, by a computing device, activity information forone or more activities engaged by a device user; collecting, by thecomputing device, observer information comprising observers proximal tothe device user when each of the one or more activities is engaged bythe device user; storing, by the computing device, collected activityinformation and collected observer information; identifying, by thecomputing device, based on the collected observer information, at leastone limited observer activity among the collected activity information,wherein the limited observer activity comprises: a solitary type limitedobserver activity, wherein collected observer information for thesolitary type limited observer activity comprises fewer than apredetermined number of observers over a plurality of instances of thesolitary type limited observer activity in the collected activityinformation; or a group type limited observer activity, whereincollected observer information for the group type limited observeractivity comprises observers within a limited set of observerscorresponding to the group type limited observer activity, over aplurality of instances of the group type limited observer activity inthe collected activity information; and generating, by the computingdevice, for the device user, at least one observer filtered activityrecommendation corresponding to the at least one limited observeractivity. 2-11. (canceled)
 12. A non-transitory computer readablestorage medium having computer executable instructions executable by aprocessor, the instructions that, when executed by the processor,implement an observer filtered activity recommendation system whichcauses the processor to: collect activity information for one or moreactivities engaged by a device user; collect observer informationcomprising observers proximal to the device user when each of the one ormore activities is engaged by the device user; store collected activityinformation and collected observer information; identify, based on thecollected observer information, at least one limited observer activityamong the collected activity information, wherein the limited observeractivity comprises: a solitary type limited observer activity, whereincollected observer information for the solitary type limited observeractivity comprises fewer than a predetermined number of observers over aplurality of instances of the solitary type limited observer activity inthe collected activity information; or a group type limited observeractivity, wherein collected observer information for the group typelimited observer activity comprises observers within a limited set ofobservers corresponding to the group type limited observer activity,over a plurality of instances of the group type limited observeractivity in the collected activity information; and generate, for thedevice user, at least one observer filtered activity recommendationcorresponding to the at least one limited observer activity.
 13. Thenon-transitory computer readable storage medium of claim 12, wherein thecollected activity information comprises one or more device user contextactivity determinations based on data collected at a device usercomputing device.
 14. The non-transitory computer readable storagemedium of claim 12, wherein the collected activity information comprisesdevice user product selection information.
 15. The non-transitorycomputer readable storage medium of claim 12, wherein the collectedobserver information comprises one or more of: information reported viaa mobile communications network; Wi-Fi communications information;information reported via a social network; information reported via alocation-based service; Global Positioning System (GPS) information;information reported by the device user; or information reported via asensor at a device user computing device.
 16. The non-transitorycomputer readable storage medium of claim 12, further comprisinginstructions that cause the processor to apply a familiarity filter tocollected observer information.
 17. The non-transitory computer readablestorage medium of claim 12, further comprising instructions that causethe processor to store sentiment information for the at least onelimited observer activity, the sentiment information indicating apositive or negative sentiment score for the at least one limitedobserver activity.
 18. The non-transitory computer readable storagemedium of claim 17, further comprising instructions that cause theprocessor to: identify the at least one limited observer activity as apositive activity with a positive sentiment score, wherein the at leastone observer filtered activity recommendation comprises a recommendationto engage in the positive activity; or identify the at least one limitedobserver activity as a negative activity with a negative sentimentscore, wherein the at least one observer filtered activityrecommendation comprises a recommendation to assist in preventing thenegative activity.
 19. The non-transitory computer readable storagemedium of claim 12, wherein the observer filtered activityrecommendation comprises an advertisement for a product or serviceassociated with the at least one limited observer activity.
 20. Thenon-transitory computer readable storage medium of claim 12, furthercomprising instructions that cause the processor to time the at leastone observer filtered activity recommendation to occur when the deviceuser is in private or in presence of observers within the limited set ofobservers corresponding to the group type limited observer activity. 21.(canceled)
 22. The non-transitory computer readable storage medium ofclaim 12, further comprising instructions that cause the processor toprovide a privacy settings User Interface (UI), the privacy settings UIcomprising at least one control adapted to receive a device userindication of allowed observers corresponding to the at least onelimited observer activity.
 23. A computing device adapted to implementan observer filtered activity recommendation system, the computingdevice comprising: a processor; a memory; and an observer filteredactivity recommendation system stored in the memory and executable bythe processor, wherein the observer filtered activity recommendationsystem is configured to: collect activity information for one or moreactivities engaged by a device user; collect observer informationcomprising observers proximal to the device user when each of the one ormore activities is engaged by the device user; store collected activityinformation and collected observer information; identify, based on thecollected observer information, at least one limited observer activityamong the collected activity information, wherein the limited observeractivity comprises: a solitary type limited observer activity, whereincollected observer information for the solitary type limited observeractivity comprises fewer than a predetermined number of observers over aplurality of instances of the solitary type limited observer activity inthe collected activity information; or a group type limited observeractivity, wherein collected observer information for the group typelimited observer activity comprises observers within a limited set ofobservers corresponding to the group type limited observer activity,over a plurality of instances of the group type limited observeractivity in the collected activity information; and generate, for thedevice user, at least one observer filtered activity recommendationcorresponding to the at least one limited observer activity.
 24. Thecomputing device of claim 23, wherein the collected activity informationcomprises one or more device user context activity determinations basedon data collected at a device user computing device.
 25. The computingdevice of claim 23, wherein the collected activity information comprisesdevice user product selection information.
 26. The computing device ofclaim 23, wherein the collected observer information comprises one ormore of: information reported via a mobile communications network; Wi-Ficommunications information; information reported via a social network;information reported via a location-based service; Global PositioningSystem (GPS) information; information reported by the device user; orinformation reported via a sensor at a device user computing device. 27.The computing device of claim 23, wherein the observer filtered activityrecommendation system is configured to apply a familiarity filter tocollected observer information.
 28. The computing device of claim 23,wherein the observer filtered activity recommendation system isconfigured to store sentiment information for the at least one limitedobserver activity, the sentiment information indicating a positive ornegative sentiment score for the at least one limited observer activity.29. The computing device of claim 28, wherein the observer filteredactivity recommendation system is configured to: identify the at leastone limited observer activity as a positive activity with a positivesentiment score, wherein the at least one observer filtered activityrecommendation comprises a recommendation to engage in the positiveactivity; or identify the at least one limited observer activity as anegative activity with a negative sentiment score, wherein the at leastone observer filtered activity recommendation comprises a recommendationto assist in preventing the negative activity.
 30. The computing deviceof claim 23, wherein the observer filtered activity recommendationcomprises an advertisement for a product or service associated with theat least one limited observer activity.
 31. The computing device ofclaim 23, wherein the observer filtered activity recommendation systemis configured to time the at least one observer filtered activityrecommendation to occur when the device user is in private or inpresence of observers within the limited set of observers correspondingto the group type limited observer activity.
 32. (canceled)
 33. Thecomputing device of claim 23, wherein the observer filtered activityrecommendation system is configured to provide a privacy settings UserInterface (UI), the privacy settings UI comprising at least one controladapted to receive a device user indication of allowed observerscorresponding to the at least one limited observer activity. 34-84.(canceled)
 85. The method of claim 1, wherein the collected activityinformation comprises one or more device user context activitydeterminations based on data collected at a device user computingdevice.
 86. The method of claim 1, wherein the collected activityinformation comprises device user product selection information.
 87. Themethod of claim 1, wherein the collected observer information comprisesone or more of: information reported via a mobile communicationsnetwork; Wi-Fi communications information; information reported via asocial network; information reported via a location-based service;Global Positioning System (GPS) information; information reported by thedevice user; or information reported via a sensor at a device usercomputing device.
 88. The method of claim 1, further comprisingapplying, by the computing device, a familiarity filter to collectedobserver information.
 89. The method of claim 1, further comprisingstoring, by the computing device, sentiment information for the at leastone limited observer activity, the sentiment information indicating apositive or negative sentiment score for the at least one limitedobserver activity.
 90. The method of claim 89, further comprising:identifying, by the computing device, the at least one limited observeractivity as a positive activity with a positive sentiment score, whereinthe at least one observer filtered activity recommendation comprises arecommendation to engage in the positive activity; or identifying, bythe computing device, the at least one limited observer activity as anegative activity with a negative sentiment score, wherein the at leastone observer filtered activity recommendation comprises a recommendationto assist in preventing the negative activity.
 91. The method of claim1, wherein the observer filtered activity recommendation comprises anadvertisement for a product or service associated with the at least onelimited observer activity.
 92. The method of claim 1, further comprisingtiming the at least one observer filtered activity recommendation tooccur when the device user is in private or in presence of observerswithin the limited set of observers corresponding to the group typelimited observer activity.
 93. The method of claim 1, further comprisingproviding, by the computing device, a privacy settings User Interface(UI), the privacy settings UI comprising at least one control adapted toreceive a device user indication of allowed observers corresponding tothe at least one limited observer activity.